既然我們的主題是跟 RAG 有關,且程式語言也是用 Python,那就不提好用的開源套件 -- Gradio 啦~~

在 2022 年,ChatGPT 興起,以及本地模型的助攻,Gradio 也因此產生
這個套件能夠透過簡單的 Python 程式去建構出一個前端頁面,相信大家也對大名鼎鼎的 Stable Diffusion 相當熟悉吧!!沒錯,他的前端頁面,也是用 Gradio 刻出來的,至於使用有多方便就不多說了,且又是用 Python 去撰寫,簡直省去了前端頁面的開發
官方也提供一個 PlayGround 讓開發者方便進行測試。
組織一個界面,一定要有一個模板,就像寫 C 語言,
,需要一個 main() 的進入點一樣
| 元件名稱 | 備註 |
|---|---|
| Blocks | 為 Gradio 中的基本元件。擁有最高自訂性,可再新增不同的功能元件 |
| Interface | 繼承 Blocks 的元件。預設給予一個輸入以及一個輸出文字框,雖然一樣可以生成界面,但自訂性較無 Blocks 高 |
| Row | 建立一個區塊讓元件可以水平排列 |
| Column | 建立一個區塊讓元件可以垂直排列 |
| Tabs | 分頁功能。若在同一個 Blocks 底下,需要分不同的頁面時可以用 |
這邊介紹幾個較為實用的功能元件
| 元件名稱 | 元件名稱 |
|---|---|
| Audio | Number |
| Button | MultimodalTextbox |
| Chatbot | Textbox |
| Checkbox | Video |
| ClearButton | BarPlot |
| Dataframe | Image |
| DownloadButton | Gallery |
| Dropdown | LinePlot |
| File(s) |
如與使用者互動的 Button、Checkbox、Radio 等等元件
或者透過官方的範例程式碼就可以打造一個簡單的前端介面
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
if __name__ == "__main__":
demo.launch()
